Fravia's TOOLS OF OUR TRADE Messageboard ~ Moderated
Actual EXE file decompiler :)
Tuesday, 23-Feb-99 12:26:55
http://www.it.uq.edu.au/groups/csm/dcc.html:
The dcc decompiler decompiles .exe files from the (i386, DOS) platform to C programs. The final C program
contains assembler code for any subroutines that are not possible to be decompiled at a higher level than
assembler.
The analysis performed by dcc is based on traditional compiler optimization techniques and graph theory. The
former is capable of eliminating registers and intermediate instructions to reconstruct high-level statements; the
later is capable of determining the control structures in each subroutine.
Please note that at present, only C source is produced; dcc cannot (as yet) produce C++ source.
The structure of a decompiler resembles that of a compiler: a front-, middle-, and back-end which perform
separate tasks. The front-end is a machine-language dependent module that reads in machine code for a
particular machine and transforms it into an intermediate, machine-independent representation of the program.
The middle-end (aka the Universal Decompiling Machine or UDM) is a machine and language independent
module that performs the core of the decompiling analysis: data flow and control flow analysis. Finally, the
back-end is high-level language dependent and generates code for the program (C in the case of dcc).
In practice, several programs are used with the decompiler to create the high-level program. These programs
aid in the detection of compiler and library signatures, hence augmenting the readability of programs and
eliminating compiler start-up and library routines from the decompilation analysis.
alf